La API de R recibirá los datos de las aplicaciones y los cargará para poder ser utilizados. Estos datos procederán de la base de datos de App Store y Google Play en la categoría de Health and Fitness.
Después de cargar las aplicaciones, se creará una estructura de datos ordenada (tidy data frame) para poder ser manipulado en la recomendación. Constará del id y descripción de cada aplicación.
Una vez que tengamos el tidy data frame creado, se hará la limpieza de la descripción.
Si se estudian las descripciones de las aplicaciones, se puede ver que todavía quedan algunas que tienen la descripción en otro idioma diferente al inglés o filas nulas. Se eliminan dichas aplicaciones y filas. Estas son las aplicaciones que vamos a eliminar:
Se eliminan números y signos de puntuación. Así es como quedarían las descripciones de las aplicaciones hasta el momento:
Para hacer el análisis, se necesitará separar las palabras de las descripciones de cada aplicación. Se crearán dos formatos tidy text para una palabra y para pares de palabras. En este proceso limpiaremos las palabras vacías como artículos, pronombres, verbos, etc. y a cada una de las palabras restantes aplicaremos un proceso llamado stemming. El stemming es un método para reducir una palabra a su raiz. Así mismo, también limpiará cualquier resto de caracteres que no sean palabras.
Se eliminarán las aplicaciones que no sean de utilidad. Primero se eliminarán las aplicaciones que contengan los siguientes pares de palabras: weight loss, free trial, purchase subscription, weight lifting, trial period, lose weight, confirm purchase, fat burn, belly fat, burn workout, apple watch, heavy weight, slim down, burn calories y high intensity.
Después se eliminarán las que contengan las siguientes palabras clave: ovulation, fertil, wearable, baby, pregnancy, hypnosis, longevity, abs, heavy, watches, trial, membership, premium, subscription, mediation, purchase, yoga, pilates, zen, relax, mind, eat, food, sleep, tarot, slim, device, reiky y weight.
Situación de las aplicaciones final:
Podemos mirar las palabras más comunes de todas las applicaciones:
Los pares de palabras más comunes:
Y las palabras más comunes para cada aplicación.
En la minería de datos, es muy común calcular la medida para conocer de qué trata un documento. Para ello, existe un algoritmo formado por dos ideas: TF y IDF. En primer lugar, se encuentra Term Frequency (TF), que mide la frecuencia de una palabra en un documento. En segundo lugar, se encuentra Inverse Document Frequency (IDF), donde el peso de una palabra aumenta a medida que su uso sea poco frecuente. Si juntamos estas dos medidas, tenemos como resultado TF-IDF, un algoritmo que da como resultado la importancia una palabra para cada documento.
Calculamos ahora dichos valores para las frecuencias de una palabra y las de pares de palabras por separado; y además una palabra y pares de palabras juntos.
Con los valores de TF-IDF nos será más fácil valorar y analizar cada documento. Vamos a mostrar las gráficas para cada aplicación con las medidas de TF-IDF de una palabra y pares de palabras juntos más significativas.
El DocumentTerm Matrix (DTM) es una representación de la frecuencia de una palabra en cada uno de los documentos. Este formato va a ser necesario para el modelado de temas que habrá más adelante.
El DTM se puede convertir en una matriz para que se vean mejor los datos. Un ejemplo sería:
| split | step | physic | pain | |
|---|---|---|---|---|
| splits.splitstraining.dothesplits.splitsin30days | 44 | 8 | 0 | 1 |
| com.leapfitness.split | 34 | 4 | 0 | 1 |
| au.org.steps10000.app | 0 | 19 | 4 | 0 |
| com.IkhfaStudio.latihankebugaranjasmani | 0 | 0 | 18 | 0 |
En minería de textos, existe un análisis llamado “agrupamiento” o “cluster”. Dicho análisis ayuda a poder detectar diferentes grupos naturales en un conjunto de documentos. Para tener un conocimiento más profundo sobre las aplicaciones, aplicaremos este análisis. Utilizaremos el método Asignación Latente de Dirichlet (LDA), el cual nos permitirá descubrir categorías no observables y entender mejor los documentos, en este caso, las aplicaciones.
Construiremos el modelo de temas con tres grupos naturales a partir del DocumentTerm Matrix.
Para k=3:
Para k=2:
Para k=4:
El valor beta es calculado para cada una de las palabras. Sirve para medir la probabilidad de que esa palabra sea generada para cada uno de los grupos. Por ejemplo, la palabra heart tiene una probabilidad de ser generada por el grupo 1 de 0.007750085, por el grupo 2 de 0.01179043 y por el grupo 3 de 0.007017814.
Ahora podemos explorar qué grupos están asociados a cada documento:
1.1. Con k=3:
1.2. Con k = 2:
1.3. Con k=4:
2.1. Con k=3:
2.2. Con k=2:
2.3. Con k=4:
3.1. Con k=3:
3.2. Con k=2:
3.3. Con k=4:
Vemos la distribución de probabilidad para cada tema y los valores gamma de cada documento. Cuanto más se acerque al valor 1, más pertenece a dicho tema.